package com.longway.common.kit;

import org.apache.commons.codec.digest.DigestUtils;
import com.jfinal.kit.StrKit;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;

public class SignKit {

    /**
     * @param params 所有的请求参数都会在这里进行排序加密
     * @return 得到签名
     */
    public static String getSign(String sortedParams) {
        return DigestUtils.md5Hex(sortedParams).toUpperCase();
    }

    /**
     * @param params 所有的请求参数都会在这里进行排序加密
     * @return 验证签名结果
     */
    public static boolean verifySign(Map<String, String> params,String signOrign) {
        if (params == null) {
            return false;
        }
        String sign = getSign(SortedParams(params));
        return StrKit.notNull(sign) && signOrign.equals(sign);
    }
    
    public static String SortedParams(Map<String, String> postParams){
    	//keySet获取键集
		List<String> keys = new ArrayList<String>(postParams.keySet());
		//对键集进行排序
		Collections.sort(keys);
		String reqStr = "";
		for(int i = 0;i < keys.size();i++) {
			String curKey = keys.get(i);
			String curValue = postParams.get(curKey);
			reqStr += curKey + curValue;
			
		}
		return reqStr;
    }
}